﻿using Prism.Dialogs;
using Prism.Mvvm;
using Prism.Commands;
using System;

namespace YY.Admin.ViewModels.Dialogs
{
    public class AlertDialogViewModel : BindableBase, IDialogAware
    {
        private string _message;
        public string Message
        {
            get => _message;
            set => SetProperty(ref _message, value);
        }

        public DelegateCommand CloseCommand { get; }

        public AlertDialogViewModel()
        {
            CloseCommand = new DelegateCommand(() =>
            {
                // 调用 RequestClose 属性触发关闭
                RequestClose.Invoke(new DialogResult(ButtonResult.OK));
            });
        }

        public bool CanCloseDialog() => true;

        public void OnDialogOpened(IDialogParameters parameters)
        {
            Message = parameters.GetValue<string>("message");
        }

        public void OnDialogClosed() { }

        public string Title => "提示";

        // 这里实现的是属性，不是 event
        public DialogCloseListener RequestClose { get; private set; }
    }
}
